package cn.hsa.fqz.task.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * t_task
 * @author
 */
@Getter
@Setter
@NoArgsConstructor
public class TTask implements Serializable {
    /**
     * 主键
     */
    private Integer id;

    /**
     * 任务代码
     */
    private String taskCode;

    /**
     * 标题
     */
    private String title;

    /**
     * 主体
     */
    private String subject;

    /**
     * 来源
     */
    private String source;

    /**
     * 填报人
     */
    private String createBy;

    /**
     * 填报人
     */
    private String createByName;

    /**
     * 下发人
     */
    private String sendBy;
    /**
     * 下发人
     */
    private String sendByName;

    /**
     * 下发时间
     */
    private Date sendTime;

    /**
     * 联系电话
     */
    private String telephone;

    /**
     * 案事件描述
     */
    private String desc;

    /**
     * 详情
     */
    private String detail;

    /**
     * 处理结果(BE_DISTRIBUTE("待分发"), BE_PROCESS("待受理"),PROCESS("已受理"),FINISHED("办结"))
     */
    private String result;

    /**
     * 是否逾期
     */
    private String isOverdue;

    /**
     * 逾期时间
     */
    private Date overdueDatetime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    /**
     * 接收者
     */
    private String receiveBy;
    /**
     * 接收者
     */
    private String receiveByName;

    /**
     * 接收时间
     */
    private Date receiveTime;

    /**
     * 取回时间
     */
    private Date backTime;

    /**
     * 取回操作人
     */
    private String backOptUser;

    /**
     * 取回操作人
     */
    private String backOptUserName;

    /**
     * 任务执行时间
     */
    private Date execTime;

    /**
     * 任务执行人
     */
    private String execOptUser;

    /**
     * 任务执行人
     */
    private String execOptUserName;

    /**
     * 任务完成回调时间
     */
    private Date dataCallbackTime;

    /**
     * 父级Id
     */
    private Integer pid;

    /**
     * 任务级别：0:子级任务 1：父级任务
     */
    private Integer isParent;

    /**
     * 签收状态：0：未签收 1：已签收
     */
    private Integer signStatus;

    /**
     * 签收行政区划
     */
    private String receiveUser;
    /**
     * 签收行政区划名称
     */
    private String receiveRegName;


    /**
     * 子任务集
     */
    private List<TTask>  subTasks;
    /**
     * 线索ID
     */
    private Integer clueId;

    private String prv;

    private String belongTo;

    private Integer supplierStatus;

    private static final long serialVersionUID = 1L;

    public TTask(Integer id,String taskCode,String title){
        this.id = id;
        this.taskCode = taskCode;
        this.title = title;
    }
}
